package com.example.myapplication;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.RectF;
import android.util.AttributeSet;
import android.view.View;

public class RoundedRectView extends View {

    private Paint paint;
    private RectF rectF;

    // 圆角半径
    private float cornerRadius = 50f; // 可以根据需要调整

    public RoundedRectView(Context context) {
        super(context);
        init();
    }

    public RoundedRectView(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public RoundedRectView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        init();
    }

    private void init() {
        // 初始化 Paint
        paint = new Paint(Paint.ANTI_ALIAS_FLAG); // 开启抗锯齿
        paint.setColor(Color.BLUE); // 设置颜色，可以根据需要修改
        paint.setStyle(Paint.Style.STROKE); // 填充模式，也可以使用 STROKE 只画边框

        // 初始化 RectF，这里先设置默认值，可以在 onSizeChanged 中更新
        rectF = new RectF();
    }

    @Override
    protected void onSizeChanged(int w, int h, int oldw, int oldh) {
        super.onSizeChanged(w, h, oldw, oldh);
        // 当 View 的大小发生变化时，更新 RectF 的范围
        // 这里我们让圆角矩形居中，你也可以根据需要调整位置
        float padding = 20f; // 可以根据需要调整内边距
        rectF.set(padding, padding, w - padding, h - padding);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        // 绘制圆角矩形
        canvas.drawRoundRect(rectF, cornerRadius, cornerRadius, paint);
    }

    // 提供设置圆角半径的方法（可选）
    public void setCornerRadius(float radius) {
        this.cornerRadius = radius;
        invalidate(); // 重绘视图
    }

    // 提供设置颜色的方法（可选）
    public void setColor(int color) {
        paint.setColor(color);
        invalidate(); // 重绘视图
    }
}